<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>

// 以下数组方法都会改变原数组：

var arr = ['red','pink','blue'];

// 1.push()向数组末尾添加一个元素，返回数组新的长度
var res1 = arr.push('green','yellow');
console.log( res1 );// 4
console.log( arr );// ['red', 'pink', 'blue', 'green']

// 2.pop()删除数组最后一个元素，返回被删除的元素
// var res2 = arr.pop();
// console.log( res2 );// 'blue'
// console.log( arr );// ['red','pink']

// 3.unshift()向数组前面添加一个元素，返回数组新的长度
// var res3 = arr.unshift('green');
// console.log( res3 );// 4
// console.log( arr );// ['green', 'red', 'pink', 'blue']

// 4.shift()删除数组第一个元素，返回被删除的元素
// var res4 = arr.shift();
// console.log( res4 );// 'red'
// console.log( arr );// ['pink', 'blue']

// 5.splice()可以对数组进行增、删、改操作，返回一个新数组（被删除的元素）
// splice(index,num,val1,val2,val3...)
// index 起始位置的索引值
// num 要删除的元素个数
// val1,val2,val3... 使用这些值替换被删除的元素

// 添加元素
// var res5 = arr.splice(1,0,'green');
// console.log( res5 );// []
// console.log( arr );// ['red', 'green', 'pink', 'blue']

// 删除元素
// var res5 = arr.splice(1,2);
// console.log( res5 );// ['pink','blue']
// console.log( arr );// ['red']

// 修改元素值（替换）
// var res5 = arr.splice(1,1,'green','yellow');
// console.log( res5 );// ['pink']
// console.log( arr );// ['red', 'green', 'yellow', 'blue']

// 6.reverse()将数组进行反转，返回原数组
// var res6 = arr.reverse();
// console.log( res6 );// ['blue', 'pink', 'red']
// console.log( arr );// ['blue', 'pink', 'red']
// console.log( res6 === arr );// true

// 7.sort()将数组进行排序，返回原数组
// var arr1 = [23,8,16,43,27,12];
// var res7 = arr1.sort();
// console.log( res7 );// [12, 16, 23, 27, 43, 8]
// console.log( arr1 );// [12, 16, 23, 27, 43, 8]

// var arr2 = ['tony','rose','jack','lucy'];
// var res8 = arr2.sort();
// console.log( res8 );// ['jack', 'lucy', 'rose', 'tony']
// console.log( arr2 );// ['jack', 'lucy', 'rose', 'tony']

// sort默认排序的规则：先比较第一个字符的ASCII码值，如果第一个字符一样，则比较后一位
// ASCII码值：'0'==48 'a'==97 'A'==65

var arr1 = [23,8,16,43,27,12];

// 按数值从小到大排序（升序）
// var res9 = arr1.sort(function (a,b){
//     return a-b;
// });
// console.log( res9 );// [8, 12, 16, 23, 27, 43]
// console.log( arr1 );// [8, 12, 16, 23, 27, 43]

// 按数值从大到小排序（降序）
// var res9 = arr1.sort(function (a,b){
//     return b-a;
// });
// console.log( res9 );// [43, 27, 23, 16, 12, 8]
// console.log( arr1 );// [43, 27, 23, 16, 12, 8]

// 思考：如果将下面的数值按照年龄进行升序排列？
var datas = [
    {name:'小王',age:24,sex:'女'},
    {name:'老王',age:31,sex:'男'},
    {name:'小张',age:20,sex:'女'},
    {name:'小严',age:18,sex:'男'}
];
var arr = [];
for(var i = 0; i < datas.length; i++){
    arr[i] = datas[i].age 
}
console.log(arr);
var result = arr.sort(function (a,b){return;});
console.log(result);
</script>
</body>
</html>